package com.bupt.liutong.admin.core.dao;

import java.util.List;

import com.bupt.liutong.admin.core.base.Ibatis;
import com.bupt.liutong.admin.core.dto.Role;

public class RoleDao {
	
	private Ibatis ibatis;
	
	@SuppressWarnings("unchecked")
	public List<Role> getRolesByPage(Role role){
		return (List<Role>) ibatis.queryForPage("core_role.getRoles", role);
	}
	
	public Role getRoleById(int id){
		return (Role) ibatis.queryForObject("core_role.getRoleById", id);
	}
	
	@SuppressWarnings("unchecked")
	public List<Integer> getRoleIdsByUserName(String userName){
		return (List<Integer>) ibatis.queryForList("core_role.getRoleIdsByUserName", userName);
	}
	
	@SuppressWarnings("unchecked")
	public List<Role> getRoleModulesByRoleId(int roleId){
		return (List<Role>) ibatis.queryForList("core_role.getRoleModulesByRoleId", roleId);
	}
	
	@SuppressWarnings("unchecked")
	public List<Role> getRoleOpersByRoleId(int roleId){
		return (List<Role>) ibatis.queryForList("core_role.getRoleOpersByRoleId", roleId);
	}
	
	@SuppressWarnings("unchecked")
	public List<Role> getRoleModuleOper(){
		return (List<Role>) ibatis.queryForList("core_role.getRoleModuleOper");
	}
	
	public void insertRole(Role role){
		ibatis.insert("core_role.insertRole", role);
	}
	
	public void insertRoleModule(Role role){
		ibatis.insert("core_role.insertRoleModule", role);
	}
	
	public void insertRoleOper(Role role){
		ibatis.insert("core_role.insertRoleOper", role);
	}
	
	public int updateRole(Role role){
		return ibatis.update("core_role.updateRole", role);
	}
	
	public int deleteRole(int id){
		return ibatis.delete("core_role.deleteRole", id);
	}
	
	public void deleteRoleModuleByRoleId(int moduleId){
		ibatis.delete("core_role.deleteRoleModuleByRoleId", moduleId);
	}
	
	public void deleteRoleOperByRoleId(int operId){
		ibatis.delete("core_role.deleteRoleOperByRoleId", operId);
	}

	public void setIbatis(Ibatis ibatis) {
		this.ibatis = ibatis;
	}
}

